package com.qys.livesMall.shop.modal.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * @menu ShopVO
 * @date 2023/05/26 10:49
 */
@Data
public class ShopVO {
    /**
     * 小店id
     */
    private Long id;
    /**
     * 用户ID
     */
    private Long userId;
    /**
     * 用户
     */
    private String userName;
    /**
     * 姓氏
     */
    private String firstName;
    /**
     * 姓名
     */
    private String name;
    /**
     * 小店名
     */
    private String shopName;
    /**
     * 小店头像地址
     */
    private String shopAvatarUrl;
    /**
     * 小店封面地址
     */
    private String shopCoverUrl;

    @Schema(description = "证件照类型")
    private Integer documentType;
    /**
     * 证件正面照地址
     */
    private String cardFrontUrl;
    /**
     * 证件背面照地址
     */
    private String cardTheBackUrl;
    /**
     * 企业名称
     */
    private String companyName;
    /**
     * 企业信用代码
     */
    private String companyCreditCode;
    /**
     * 企业营业执照图片地址
     */
    private String companyLicenseUrl;
    /**
     * whatsapp的国家代码
     */
    private String whatsappCountryCode;
    /**
     * 电话的国家代码
     */
    @Schema(description = "电话的国家代码")
    private String phoneCountryCode;
    /**
     * 电话
     */
    private String phone;
    /**
     * 邮箱
     */
    private String email;
    /**
     * whatsapp
     */
    private String whatsapp;
    /**
     * telegram
     */
    private String telegram;
    /**
     * 小店介绍
     */
    private String intro;
    /**
     * 小店类型（1：个人 2：旗舰 3：公司）
     */
    private Integer type;
    /**
     * 状态（0：正常 1：待审批  2：待发合同 ，3:关店申请，4，已关店，-1，审批不通过）
     */
    private String status;
    /**
     * 审批人
     */
    private String approvalBy;

    /**
     * 开店审核状态 0：未审核，1：审核不通过 2：已审核
     */
    private String approvalStatus;

    /**
     * 关店审核状态 0：未审核，1：审核不通过 2：已审核
     */
    private String offStatus;
    /**
     * 闭店理由
     * todo 数据库暂未处理该字段
     */
    private String offReason;
    /**
     * 审批时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+0")
    private LocalDateTime approvalTime;
    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+0")
    private LocalDateTime createTime;
    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+0")
    private LocalDateTime updateTime;
    /**
     * 带货类型id(商品父id)
     */
    private Integer productTypeId;
    /**
     * 商铺等级（初始1）
     */
    private Integer shopLevelId;

    /**
     * 商铺等级（初始1）
     */
    private String shopLevel;
    /**
     * 带货地区id(地区父id)
     */
    private Integer areaId;
    /**
     * 是否被删除 0 未删除 1 已删除
     */
    private Integer deleted;
    /**
     * 店铺销量
     */
    private Integer shopSalesVolume;
    /**
     * 店铺销售额
     */
    private Double shopSalesAmount;
    /**
     * 店铺商品数
     */
    private Integer shopProductNum;

    /**
     * 关注人数
     */
    private Integer interestNum;

    /**
     * 业务类型
     */
    private String businessType;

    /**
     * 店铺地址
     */
    private String shopAddress;

    /**
     * 品牌标识
     */
    private String brandFlag;

    /**
     * 文件(合同，证书)状态 0：未签，1：单签合同, 2：单传证书，3:全部签署
     */
    private String fileStatus;

    /**
     * 可用余额
     */
    private BigDecimal availableBalance;


    /**
     * 简介
     */
    private String profile;

    /**
     * 是否关注 1：已关注，0：未关注
     */
    private Integer interest;

    /**
     * 先款后货
     */
    private Integer cashBeforeDelivery;

    /**
     * 先货后款
     */
    private Integer deliveryBeforeCash;
    /**
     * 店铺结算（天）
     */
    private Integer settlementDay;

    /**
     * 店铺评分
     */
    private BigDecimal mark;

    /**
     * 工作环境（1：个居家办公 2：小型工作室 3：公司）
     */
    private String workScene;

    @Schema(description = "照片地址")
    private  String photoUrl;

    /**
     * 已缴纳保证金等级id (未缴纳为-1)
     */
    private Integer payEarnestMoneyLevelId;


    /**
     * 已缴纳保证金
     */
    private BigDecimal earnestMoney;
}

